<!-- <!DOCTYPE html>

<html>
    <head>
        <meta charset="UTF-8">
        <title>Comparaison CSV avec BDD</title>
    </head>
    <body> -->

<?php
		include 'header.html';

 echo "La BdD : "; ////////////OUVERTURE ET COMPARAISON DONNEES CSV ET CONTENU BDD/////////////////////
 
        // $tableaucsv_serial_slash = $_POST['tableaucsv'];
        // var_dump($tableaucsv_serial_slash);
        // $tableaucsv_serial_deslash = htmlspecialchars_decode($tableaucsv_serial_slash);
        // var_dump($tableaucsv_serial_deslash);
        // $tableaucsv = unserialize($tableaucsv_serial_deslash);
			
			$tableaucsv_serial = $_POST['tableaucsv'];
			$tableaucsv = deserialiser($tableaucsv_serial);
		
        $groupe = $_POST['groupe'];
		echo "<br>Le groupe est : $groupe<br>";
		// var_dump($tableaucsv);
        
        //require_once './fonctions.php'; // les fonctions insert, ignore, update, delete sont ds cette autre page php 
        
        $dsn = "mysql:host=localhost;dbname=beaufrene"; /// ouverture BdD
        $username = "root";
        $passwd = "root";

        try {
            $pdo = new PDO($dsn, $username, $passwd, array(PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES 'utf8'"));  /// utilisation d'une classe PDO
            echo "<br>Pas d'erreur BdD apparemment <br>";
        } catch (PDOException $ex) {
            echo "Erreur connexion BdD <br>";
        }
         

        $sql_g = "SELECT * FROM $groupe";  /// recup tous les champs et enregistrements de la table Eleves/Profs
        $req_g = $pdo->query($sql_g);
		
		// echo "vardump de pdo ds compareBDD()";
		// var_dump($pdo);
		
		echo '<div><a href="#bas">aller en bas de la page</a></div>';
		
        echo "<h3>La base de données</h3>";
        
		$tab_insert = Array();
		$tab_ignore = Array();
		$tab_update = Array();
		$tab_delete = Array();
        
        $enreg_bdd = 1;
        while ($result_g = $req_g->fetch()) { // boucle tableau BDD jusqu'au bout de la table
                            
            $enreg_csv = 1;
            echo "<br><br> >> $enreg_bdd >>";
            while ($enreg_csv <= sizeof($tableaucsv)) { // boucle tableau CSV jusqu'au bout du tableaucsv
                if ($result_g['0'] === $tableaucsv[$enreg_csv][0]) { /// si un code eleve/prof de la BDD correspond à un code eleve/prof du CSV
                    echo "<b>A la ligne $enreg_bdd de la BdD, le code eleve/prof " . $result_g[0];
                    echo " correspond au code eleve/prof " . $tableaucsv[$enreg_csv][0] . " à la ligne $enreg_csv du CSV</b><br>";

					if ($groupe == "Eleves") { ///// Eleves
						if (
							$result_g[1] == $tableaucsv[$enreg_csv][1]  /// et si les champs de cet eleve correspondent tous à ceux du CSV
							&& $result_g[2] == $tableaucsv[$enreg_csv][2] 
							&& $result_g[3] == $tableaucsv[$enreg_csv][3]
							//&& $result_g[4] == $tableaucsv[$enreg_csv][4]
							&& $result_g[5] == jma2amj($tableaucsv[$enreg_csv][5]) 
							&& $result_g[7] == $tableaucsv[$enreg_csv][6]
						) {
							$tab_ignore[$enreg_csv] = ignore_enreg($groupe, $result_g, "", $tableaucsv, $enreg_csv); /// alors IGNORE : on ne touche à rien

						} else {
							$tab_update[$enreg_csv] = update_enreg($groupe, $result_g, "", $tableaucsv, $enreg_csv); /// sinon UPDATE : on met à jour les champs
						}
					} else {	/// Professeurs
					
					
							/// listing classes d'après CSV -> tableau $tableaucsv_classes
						//var_dump ($tableaucsv[$enreg_csv]);
						
						$tableaucsv_classes = array();
						for ($y=7;$y<sizeof($tableaucsv[$enreg_csv]);$y++) {
							$tableaucsv_classes[$y] = $tableaucsv[$enreg_csv][$y];
						}							
						//echo "<br>Vardump de tableaucsv_classes";
						//var_dump($tableaucsv_classes);
						
						
							/// listing classes d'après BDD -> tableau $bdd_classes
						$index_prof = $tableaucsv[$enreg_csv][0];
						
						echo "<p>Appel quelle assignation - index prof = $index_prof</p>";
						$bdd_classes = quelle_assignation($index_prof);
						var_dump($bdd_classes);
						
						// $sql_classes = "SELECT * FROM Assignations WHERE professeur_assignation = '$index_prof'";  /// recup des classes où enseignent les profs
						// $req_classes = $pdo->query($sql_classes);
						// $z=7;
						// $bdd_classes = array(); // remet le tableau classes à zero
						// while ($result_classes = $req_classes->fetch()) {
							// $bdd_classes[$z]= $result_classes[1];
							// $z++;
						// }
						// echo "<br>Vardump de bdd_classes";
						// var_dump($bdd_classes);
						
						
						if (
							$result_g[1] == $tableaucsv[$enreg_csv][1]  /// et si les champs de ce prof correspondent tous à ceux du CSV
							&& $result_g[2] == $tableaucsv[$enreg_csv][2] 
							&& $result_g[3] == $tableaucsv[$enreg_csv][3]
							//&& $result_g[4] == $tableaucsv[$enreg_csv][4]
							&& $result_g[5] == jma2amj($tableaucsv[$enreg_csv][5])
							&& $bdd_classes == $tableaucsv_classes
						) {
							$tab_ignore[$enreg_csv] = ignore_enreg($groupe, $result_g, $bdd_classes, $tableaucsv, $enreg_csv); /// alors IGNORE : on ne touche à rien

						} else {
							$tab_update[$enreg_csv] = update_enreg($groupe, $result_g, $bdd_classes, $tableaucsv, $enreg_csv); /// sinon UPDATE : on met à jour les champs
						}
					}
                    
                    break; /// on sort de la boucle CSV puisqu'on a déjà trouvé un élève/prof correspondant dans la BDD et le CSV 
                }
                $enreg_csv++; /// sinon on continue à chercher dans l'enregistrement CSV suivant
            } // fin boucle while tableau CSV
                                   
            if ($enreg_csv > sizeof($tableaucsv)) { /// si l'index nombre d'enregistrement a depassé le nombre d'article
                echo "<b>A la ligne " . ($enreg_bdd) . " de la BDD, le code eleve/prof " . $result_g[0] . " de la BdD"; /// dans le table CSV, c'est qu'on n'a pas trouvé
                echo " ne correspond à aucun code eleve/prof du CSV</b><br>"; ///  d'Eleve/Prof dans la BDD correspondant au CSV
				$bdd_classes = quelle_assignation($result_g[0]);
				$tab_delete[$enreg_bdd] = delete_enreg($groupe, $result_g, $bdd_classes, $enreg_bdd); /// alors DELETE : on efface l'enregistrement de cet eleve/prof ds la BDD
            }
			
            $enreg_bdd++; /// on continue et on lit toute la table Eleves/Professeurs de la BDD
			
        } // fin boucle tableau BDD
				
				
				
				
				
        echo "<br><h2> Pour les INSERT </h2>"; ///////////// I N S E R T //////////////////////////
        
        // Pour le INSERT, on lit tous les enreg du CSV et on verifie s'ils existent dejà dans la BDD
        
        $sql_c = "SELECT count(*) AS total_c FROM $groupe";  /// compte le nombre d'enregistrements de la table Eleves/Professeurs
        $req_c = $pdo->query($sql_c);
        $result_c = $req_c->fetch();
        
        $enreg_csv=1;
        $enreg_bdd2=1;
        while ($enreg_csv <= sizeof($tableaucsv)) { // boucle tableau CSV
            $req_g2 = $pdo->query($sql_g); // on refait la requete recup champs et enreg de la table Eleves/Professeurs
            
            echo "<br><br> >> $enreg_csv >>";
            while ($result_g2 = $req_g2->fetch()) { // boucle tableau BDD               
                
                if ($result_g2[0] == $tableaucsv[$enreg_csv][0]) { // si le code_eleve/prof de la BDD et du CSV correspondent
                    echo "<br>";
                    break;  // on ne fait rien, on sort de la boucle et on ira au prochaine enregistrement du CSV
//                } else {
//                    echo "code CSV et code BDD differents<br>";
                }
                $enreg_bdd2++; // enreg BDD suivant
                
                
                if ($enreg_bdd2 > $result_c['total_c']) { /// si l'index a dépassé le nb d'enreg de la BDD, c'est que
                    echo "<b>Le code eleve/prof " . $tableaucsv[$enreg_csv][0] . " du CSV"; // ce code_eleve/prof n'y est pas : on le crée
                    echo " ne correspond à aucun code eleve/prof de la BDD</b><br>";
                    $tab_insert[$enreg_csv] = insert_enreg($groupe, $tableaucsv, $enreg_csv); // alors INSERT : on cree l'enreg dans la BDD
                }                
            }
            $enreg_bdd2 = 1; // on recommencera à partir du 1er enregistrement de la BDD
            $enreg_csv++; // enregistrement suivant dans le tableaucsv
        }    
        
		echo "<br><hr><br>";
        
        $prepaXML_serial_slash = "preparation tableau pour generer le XML";
		
		echo "<br> vardump ti";					
		var_dump($tab_ignore);
		echo "<br> vardump tu";					
		var_dump($tab_update);
		echo "<br> vardump tc";					
		var_dump($tab_insert);
		echo "<br> vardump td";					
		var_dump($tab_delete);
		echo "<hr>";
			
		
		$tab_general = array(
							"Insert" => $tab_insert,
							"Ignore" => $tab_ignore,
							"Update" => $tab_update,
							"Delete" => $tab_delete,
							);
							
		echo "<br> vardump tab general";					
		var_dump($tab_general);	

		// serialisation
        // $tab_general_serial = serialize($tab_general);
        // $tab_general_serial_slash = htmlspecialchars($tab_general_serial);	
		$tab_general_serial_slash = serialiser($tab_general);
		// var_dump($tab_general_serial_slash);	
        
?>
		<div id="bas"></div>
         <br><hr><br>          
        <form method="POST" action="verification.php">
            <input type="hidden" name="verifier" id="verifier" value="<?php echo serialiser($tab_general) ?>">
			<input type="hidden" name="groupe" id="groupe" value="<?php echo $groupe?>">
            <input type="hidden" name="titre" id="titre" value="csv2xml pour ILIAS - Vérification avant génération et mise à jour">
            <button type="submit">Vérification avant mise à jour</button>
        </form>             
            
    </body>
</html>

